﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Interfaces;

namespace Model
{
    public class Medarbejder : IMedarbejderdata
    {
        // atributter
        private int medarbNr;
        private string navn;
        private string email;
        private int tlfNr;
        private string adresse;
        private int postnr;
        private string bynavn;
        private bool aktiv;

        private List<Projekt> mineMedarbejderProjekter;

        // konstruktør
        public Medarbejder(int medarbNr, string navn, string email, int tlfNr, string adresse, int postnr, string bynavn, bool aktiv)
        {
            this.medarbNr = medarbNr;
            this.navn = navn;
            this.email = email;
            this.tlfNr = tlfNr;
            this.adresse = adresse;
            this.postnr = postnr;
            this.bynavn = bynavn;
            this.aktiv = aktiv;

            mineMedarbejderProjekter = new List<Projekt>();
        }

        #region Associeringsmetoder

        // metode til at associere et projekt-objekt til et medarbejder-objekt
        public void TilknytProjekt(Projekt etProjekt)
        {
            mineMedarbejderProjekter.Add(etProjekt);
        }

        // metode til at hente liste af associerede projekter
        public IEnumerator GetMineMedarbejderProjekter()
        {
            return mineMedarbejderProjekter.GetEnumerator();
        }

        // metode til at fjerne et associeret projekt-objekt
        public void FjernProjekt(Projekt etProjekt)
        {
            mineMedarbejderProjekter.Remove(etProjekt);
        }

        #endregion

        #region Properties

        public int MedarbNr
        {
            get { return medarbNr; }
        }

        public string Navn
        {
            get { return navn; }
            set { navn = value; }
        }

        public string Email
        {
            get { return email; }
            set { email = value; }
        }

        public int TlfNr
        {
            get { return tlfNr; }
            set { tlfNr = value; }
        }

        public string Adresse
        {
            get { return adresse; }
            set { adresse = value; }
        }

        public int Postnr
        {
            get { return postnr; }
            set { postnr = value; }
        }

        public string Bynavn
        {
            get { return bynavn; }
            set { bynavn = value; }
        }

        public bool Aktiv
        {
            get { return aktiv; }
            set { aktiv = value; }
        }

        #endregion
    }
}
